home *** CD-ROM | disk | FTP | other *** search
/ PC Play 129 / pc play 129.iso / Demo / man2 / man2.exe / scenarios / train / Train 02.scl < prev    next >
Encoding:
Text File  |  2005-11-28  |  5.3 KB  |  221 lines

  1. scenario = GetProperties()
  2. scenario.ScenarioType = 1
  3. scenario.Title = "sc_Train_02_00"
  4. scenario.Map = "Beotorum.dat"
  5. scenario.Description = "sc_Train_02_01"
  6. scenario.Picture = "Train 02.dds"
  7. scenario.iSortOrder = 2
  8.  
  9. scenario.vShowMessageBoxes[STDDT_AUTOFINISH_COMBAT] = false
  10. scenario.vShowMessageBoxes[STDDT_COMBAT_PHASE] = false
  11. scenario.vShowMessageBoxes[STDDT_YOU_CAPTURED_CAPITAL] = false
  12. scenario.vShowMessageBoxes[STDDT_YOU_CLEARED_TERRITORY] = false
  13. scenario.vShowMessageBoxes[STDDT_ENEMY_CLEARED_TERRITORY] = false
  14. scenario.vShowMessageBoxes[STDDT_YOU_CAPTURED_COUNTRY] = false
  15. scenario.vShowMessageBoxes[STDDT_ENEMY_CAPTURED_COUNTRY] = false
  16.  
  17. Player(PT_PLAYER, RACE_HUMANS)
  18. Player(PT_AI, RACE_ALIENS)
  19.  
  20. SetInitialCamera(0.991314, 0.000000, 0.131519, 0.000000, -0.095675, 0.686146, 0.721145, 0.000000,-0.090241, -0.727464, 0.680186, 0.000000,1560.190430, 427.496674, -1307.211182, 1.000000)
  21.  
  22. function InitialMOB()
  23.     StartMOB(1)
  24.  
  25.     ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_02")
  26.  
  27.     FlyCamera(0.589713, -0.000000, 0.807613, 0.000000, -0.624837, 0.633572, 0.456252, 0.000000,-0.511681, -0.773684, 0.373626, 0.000000,1380.990967, 254.091721, -968.522156, 1.000000)
  28.  
  29.     ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_03")
  30.  
  31.     FlyCamera(0.715080, 0.000000, 0.699043, 0.000000, -0.546779, 0.623049, 0.559323, 0.000000,-0.435538, -0.782183, 0.445530, 0.000000,1589.309570, 195.015366, -1152.758911, 1.000000)
  32.  
  33.     ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_04")
  34.  
  35.     FlyCamera(0.880302, 0.000000, 0.474414, 0.000000, -0.386058, 0.581203, 0.716353, 0.000000,-0.275731, -0.813759, 0.511634, 0.000000,1508.794189, 329.085205, -1202.104736, 1.000000)
  36.  
  37.     ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_05")
  38.  
  39.     FinishMOB()
  40. end
  41.  
  42. function OnUnitDead(unit)
  43.     if ( unit == 1 ) then
  44.         StartMOB(1)
  45.  
  46.         ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_06")
  47.  
  48.         FinishMOB()
  49.     end
  50.  
  51.     if ( unit == 3 ) then
  52.         StartMOB(1)
  53.  
  54.         ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_07")
  55.  
  56.         FinishMOB()
  57.     end
  58.  
  59.     if( GetAliveUnitsAmount( COLOR_RED ) == 0 ) then
  60.         StartMOB(1)
  61.  
  62.         ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_08")
  63.  
  64.         FinishMOB()
  65.     end
  66. end
  67.  
  68. function CheckForVictory()
  69.     if( GetAliveUnitsAmount( COLOR_RED ) == 0 ) then
  70.         return  GAMERESULT_VICTORY
  71.     end
  72.  
  73.     if( GetAliveUnitsAmount( COLOR_GREEN ) == 0 ) then
  74.         return GAMERESULT_DEFEAT
  75.     end
  76.  
  77.     return GAMERESULT_NONE
  78. end
  79.  
  80. function OnEndTurn()
  81.     if ( GetTurnNumber( COLOR_GREEN ) <= 0 ) then
  82.         StartMOB(1)
  83.  
  84.         ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_09")
  85.  
  86.         FinishMOB()
  87.     end
  88. end
  89.  
  90. function OnEndAITurn()
  91.     if ( IsDead( 1 ) and IsAlive( 3 ) ) then
  92.         StartMOB(1)
  93.  
  94.         ShowXBallon(51, -1, MBS_CENTER, 300, 300, "sc_Train_02_11")
  95.  
  96.         FinishMOB()
  97.     end
  98. end
  99.  
  100. function OnHexClicked(x, y, clicked_unit, selected_unit, command)    
  101.     if ( selected_unit ~= 4098 and IsAlive( 4098 ) and not HasFired( 4098 ) ) then
  102.         if (command == CMD_MOVE or command == CMD_FIRE) then
  103.             IncorrectAction("sc_Train_02_12")
  104.             return
  105.         end
  106.     end
  107.  
  108.     local target
  109.  
  110.     if ( IsAlive( 1 ) ) then
  111.         target = 1
  112.     elseif ( IsAlive( 3 ) ) then
  113.         target = 3
  114.     elseif ( IsAlive( 2 ) ) then
  115.         target = 2
  116.     end
  117.  
  118.     if (command == CMD_MOVE) then
  119.         if ( GetDistance( target, x, y ) > GetMaxWR( selected_unit ) ) then
  120.             IncorrectAction("sc_Train_02_12")
  121.         end
  122.     end
  123.  
  124.     if (command == CMD_FIRE) then
  125.         if ( clicked_unit ~= target ) then
  126.             IncorrectAction("sc_Train_02_12")
  127.         end
  128.     end
  129.  
  130. end
  131.  
  132. old_prompt = ""
  133.  
  134. local bCanEndPhase = false
  135.  
  136. function OnUpdate()
  137.     bCanEndPhase = false
  138.  
  139.     if ( GetGamePhase() == PHASE_COMBAT ) then
  140.         if ( IsAlive( 4098 ) and not HasFired( 4098 ) ) then
  141.             if ( GetSelectedUnit() ~= 4098 ) then
  142.                 ShowPrompting("sc_Train_02_13")
  143.             else
  144.                 if ( IsAlive( 1 ) or IsDead( 3 ) ) then
  145.                     if ( GetDistance( 4098, 20, 26 ) <= 1 ) then
  146.                         ShowPrompting("sc_Train_02_14")
  147.                     else
  148.                         ShowPrompting("sc_Train_02_15")
  149.                     end
  150.                 else
  151.                     if ( GetDistance( 4098, 3 ) <= 1 ) then
  152.                         ShowPrompting("sc_Train_02_16")
  153.                     else
  154.                         ShowPrompting("sc_Train_02_17")
  155.                     end
  156.                 end
  157.             end
  158.  
  159.             return
  160.         end
  161.         
  162.         if ( IsAlive( 4099 ) and not HasFired( 4099 ) ) then
  163.             if ( GetSelectedUnit() ~= 4099 ) then
  164.                 ShowPrompting("sc_Train_02_18")
  165.             else
  166.                 if ( IsAlive( 1 ) or IsDead( 3 ) ) then
  167.                     if ( GetDistance( 4099, 20, 26 ) <= 2 ) then
  168.                         ShowPrompting("sc_Train_02_19")
  169.                     else
  170.                         ShowPrompting("sc_Train_02_20")
  171.                     end
  172.                 else
  173.                     if ( GetDistance( 4099, 3 ) <= 2 ) then
  174.                         ShowPrompting("sc_Train_02_21")
  175.                     else
  176.                         ShowPrompting("sc_Train_02_22")
  177.                     end
  178.                 end
  179.             end
  180.  
  181.             return
  182.         end
  183.  
  184.         ShowPrompting("sc_Train_02_23")
  185.         bCanEndPhase = true
  186.     end
  187. end
  188.  
  189. function OnEndPhase( phase )
  190.     if phase == PHASE_COMBAT then
  191.         if not bCanEndPhase then
  192.             IncorrectAction("sc_Train_01_05")
  193.         end
  194.     end
  195. end
  196.  
  197. function aiUnit( unit )
  198.     aiMustNot()
  199.     aiSetFear(0)
  200.     if (unit == 2) then
  201.         aiHexAttraction( 20, 26, 5, 10)
  202.     else
  203.         aiInitialPosAttraction(5, 10)
  204.     end
  205. end
  206.  
  207. function InitialSetup()
  208.  
  209. Country(4, ALLIANCE_FNU_ALLY)
  210. Money(4, MONEY_GUERRILLA, 0)
  211. Money(4, MONEY_TOTAL_REVENUE, 0)
  212.  
  213. SetupUnit(4098, TANK, 23, 29)
  214. SetupUnit(4099, HBOT, 24, 30)
  215.  
  216. SetupUnit(1, LBOTA, 20, 26)
  217. SetupUnit(2, LBOTA, 20, 24)
  218. SetupUnit(3, MORTARA, 19, 25)
  219.  
  220. end
  221.